package com.mtw.bbs.bbsUser.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.mtw.bbs.bbsUser.pojo.entity.User;
import com.mtw.bbs.bbsUser.pojo.form.PasswordForm;
import com.mtw.bbs.bbsUser.pojo.form.UserForm;
import com.mtw.bbs.bbsUser.pojo.form.UserUpdateForm;

import java.util.List;


/**
 * 用户
 *
 * @author mo
 * @email mo
 * @date 2023-10-18 15:44:13
 */
public interface UserService extends IService<User> {

    /**
     * 根据用户id获取用户信息
     *
     * @param username 用户名
     * @return 用户信息vo
     */
    User getUserInfoByUsername(String username);

    /**
     * 根据用户id获取用户信息
     *
     * @param id 用户id
     * @return 用户信息vo
     */
    User getUserInfoById(String id);


    /**
     * 根据用户id集合获取用户信息
     *
     * @param ids 用户id集合
     * @return 用户信息vo集合
     */
    List<User> getUserInfoByIds(List<String> ids);


    /**
     * 根据用户名获取用户全部信息
     *
     * @param username 用户名
     * @return 用户信息
     */
    User loadUserByUserName(String username);


    /**
     * 根据mobile获取用户
     *
     * @param mobile 用户手机号
     * @return 用户信息
     */
    User loadUserByMobile(String mobile);



    /**
     * 注册用户
     */
    void registerUser(User user);


    /**
     * 注册管理员用户
     */
    void registerAdmin(UserForm form);



    /**
     * 更新管理员用户
     */
    void updateAdmin(UserForm form);


    /**
     * 更新用户
     */
    boolean updateUser(UserForm form);



    /**
     * 更新用户信息
     */
    String updateUserInfo(UserUpdateForm form);



    /**
     * 修改密码
     *
     * @param id          用户id
     * @return 结果
     */
    boolean updatePassword(String id, PasswordForm form);


    /**
     * 更新用户状态
     *
     * @param ids     用户id集合
     * @param status 用户状态
     */
    void updateUserStatus(List<String> ids, Integer status);



    /**
     * 更新用户评论状态
     *
     * @param ids     用户id集合
     * @param status  评论状态
     */
    void updateCommentStatus(List<String> ids, Integer status);




}

